package com.ouran.dao.information;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import javax.annotation.Resource;

import org.hibernate.Query;
import org.springframework.orm.hibernate4.HibernateTemplate;
import org.springframework.stereotype.Repository;

import com.ouran.model.information.Information;
import com.ouran.util.htmlUtil;

/**
 * 文章资讯模块Dao实现
 * 
 * @version 1.0 Date 2018/09/17
 */

@Repository("InformationDaoImpl")
public class InformationDaoImpl implements InformationDao {

	/**
	 * 引用hibernateTemplate操作模板
	 */
	@Resource
	HibernateTemplate hibernateTemplate;

//	@Resource
//	protected RedisTemplate<Serializable, Serializable> redisTemplate;

	/**
	 * 查询所有
	 * 
	 * @return 文章资讯信息
	 */
	@Override
	public List<Information> inforAll() {

		List<Information> list = new ArrayList<>();

		list = (List<Information>) hibernateTemplate.find("from information");

		if (list.size() > 0 && list != null)

			return list;

		return Collections.emptyList();
	}

	/**
	 * 查询所有文章资讯
	 * 
	 * @return 分页文章资讯信息
	 */
	@Override
	public List<Information> getInformationManage() {
		Query query = this.hibernateTemplate.getSessionFactory()
				.getCurrentSession().createQuery("from Information");
		List<Information> datas = query.list();
		
		if(null != datas) {
			for (int i = 0; i < datas.size(); i++) {
				
				String htmlStr = datas.get(i).getArticle();
				
				System.out.println("获取全部内容："+htmlStr);
				
				//获取图片
				String imgBase64 = htmlUtil.getImageBase64(htmlStr, "p");
				System.out.println("获取图片："+imgBase64);
				datas.get(i).setImgBase64(imgBase64);
				
				//获取标题
				String title = htmlUtil.getHtmltitle(htmlStr, "h1");
				datas.get(i).setTitle(title);
				
				//获取简易内容
				String context = htmlUtil.getHtmContent(htmlStr, "p");
				datas.get(i).setContent(context);
			}
		}
		return datas;
	}

	/**
	 * 根据id查询文章内容
	 * 
	 * @param id
	 * @return 文章资讯内容
	 */
	@Override
	public Information load(int id) {
		return hibernateTemplate.load(Information.class, id);
	}

	/**
	 * 新增文章
	 * 
	 * @param information
	 */
	@Override
	public void addInformation(Information infor) {

		hibernateTemplate.save(infor);
	}

}
